package com.dms.modules.message.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dms.modules.message.dto.MessageDTO;
import com.dms.modules.message.dto.MessageDetailDTO;

public interface MessageService {
    
    /**
     * 发送消息
     */
    Long sendMessage(MessageDTO messageDTO);
    
    /**
     * 获取用户消息列表
     */
    IPage<MessageDetailDTO> getUserMessages(Long userId, Integer type, Page<MessageDetailDTO> page);
    
    /**
     * 获取消息详情
     */
    MessageDetailDTO getMessageDetail(Long userId, Long messageId);
    
    /**
     * 标记消息已读
     */
    boolean markAsRead(Long userId, Long messageId);
    
    /**
     * 获取未读消息数
     */
    int getUnreadCount(Long userId);
    
    /**
     * 撤回消息
     */
    boolean recallMessage(Long messageId);
} 